package com.dhcc.DRGsHosp.application;

import java.util.List;
import java.util.Map;

/**
 * 
 * ClassName: AnalysisDRGsReportApplication  
  * Description ： 简版新版分析报告导出-POI技术   
 * Reason: TODO ADD REASON(可选).   
 * date: 2017年11月7日 下午4:37:57  
 * @author ShaozhiYuan
 * @version V1.0 DHC
 */
public interface AnalysisDRGsReportApplication {
	/**
	 * @methodname    :getARBenchmarkYear
	 * @description   : 获取标杆年份
	 * @param         :
	 * @author        :liuhongjun
	 * @return        :
	 * @date          :2016年6月17日
	 */
	public List<Map<String,Object>>  getARBenchmarkYear();
	/**
	 * 获取当前系统库中所有的临床专业
	 * @return
	 */
	public List<Map<String,Object>>  getARBenchSpecCode(String drgVersion);
	/**
	 * 
	 * @Title: getARDrgVersion  
	 * @Description:获取系统中的分组器版本号
	 * @param @return   
	 * @return List<Map<String,Object>>  
	 * @author shaozhiyuan
	 * @date 2018年5月2日  
	 * @version V3.1.0 
	 * @throws
	 */
	public List<Map<String,Object>>  getARDrgVersion();
	/**
	 * 
	 * @Title: getDRGversionCode  
	 * @Description:根据分组方案获取分组器版本号
	 * @param @param groupScheme
	 * @param @return   
	 * @return String  
	 * @author shaozhiyuan
	 * @date 2018年10月12日  
	 * @version V3.1.1
	 * @throws
	 */
	public String getDRGversionCode(String groupScheme);
	/**
	 * @methodname    :findDataIsNull
	 * @description   : 判断当前生成报告的时间段内用没有数据
	 * @param         :
	 * @author        :liuhongjun
	 * @return        :
	 * @date          :2016年7月21日
	 */
	public int findARDataIsNull(String dataFrom, String dataTo ,String groupScheme, String hospCode);
	/**
	 * 
	 * @methodname    :findNewDrgs
	 * @description   :获取新增病组
	 * @param         :
	 * @author        :liuhongjun
	 * @param benchmarkYear 
	 * @return        :
	 * @date          :2016年8月2日
	 */
	public List<Map<String,Object>>  findARNewDrgs(String dateFrom, String dateTo, String stdId,String groupScheme, String hospCode);
	 /**
	    * 
	    * @Description :校验数据完整性
	    * @methodname :findCheckedData
	    * @author:ShaoZhiYuan
	    * @return List<Map<String,Object>> 
	    * @date :2017年2月24日
	    */
	public List<Map<String,Object>>  findARCheckedData(String dateFrom,String dateTo,String stdId ,String groupScheme, String hospCode);
	/**
	 * Description ：获取医院科室总数 
	 * date: 2017年11月8日 下午3:19:20  
	 * @author ShaozhiYuan
	 * @version V1.0 DHC
	 */
	public int findARDepCount();
	/**
	 * Description ：获取医院基本信息 
	 * date: 2017年11月9日 下午3:17:16  
	 * @author ShaozhiYuan
	 * @version V1.0 DHC
	 */
	public List<Map<String,Object>>  findARSimpHospBaseQuota(Map<String, Object> map);
	/**
	 * Description ：获取医院基本信息 表1
	 * date: 2017年11月9日 下午3:17:16  
	 * @author ShaozhiYuan
	 * @version V1.0 DHC
	 */
	public List<Map<String,Object>>  findSimpHospBaseTableOne(Map<String, Object> map);
	/**
	 * Description ： 获取医院基本信息 表2
	 * date: 2017年11月9日 下午4:52:49  
	 * @author ShaozhiYuan
	 * @version V1.0 DHC
	 */
	public List<Map<String,Object>>  findSimpHospBaseTableTwo(Map<String, Object> map);
	/**
	 * Description：获取手术病例
	 * date: 2017年11月10日 上午9:40:48  
	 * @author ShaozhiYuan
	 * @version V1.0 DHC
	 */
	public String  findHospCaseOperationCount(Map<String, Object> map);
	/**
	 * 获取手术版本信息
	 * @param map
	 * @return
	 */
	public String  findHospCaseOperationVersion(Map<String, Object> map);
	/**
	 * 获取该手术版本信息下的字典数
	 * @param map
	 * @return
	 */
	public String  findHospCaseOperVersionCnt(Map<String, Object> map);
	/**
	 * 更新手术操作字段
	 * @param paramMap
	 */
	public void updateHospCaseOper(Map<String, Object> paramMap);
	/**
	 * Description ： 获取各级手术病例数
	 * date: 2017年11月10日 上午10:16:45  
	 * @author ShaozhiYuan
	 * @version V1.0 DHC
	 */
	public List<Map<String,Object>>  findOperCaseByLvel(Map<String, Object> map);
	/**
	 * @param 2.2章节 图表2主要手术病例数降序排列前二十位的手术
	 * @return
	 */
	public List<Map<String,Object>>  findtopTwentyOper(Map<String, Object> map);
	/**
	 * 
	 * @param 获得各级手术的总数
	 * @return
	 */
	public List<Map<String,Object>>  findmainOperLevelInfo(Map<String, Object> map);
	/**
	 * 
	 * @param 2.3章节表格，各级手术排序
	 * @param i
	 * @return
	 */
	public List<Map<String,Object>>  findtopCaseByLevel(Map<String, Object> map,int level);
	/**
	 * 
	 * @param 2.4章节表格
	 * @return
	 */
	public List<Map<String,Object>>  findParLevelInfoList(Map<String, Object> map);
	/**
	 * @param 2.5章节 十八个重点手术
	 * @return
	 */
	public List<Map<String,Object>>  findkeyEighteenOper(Map<String, Object> map);
	/**
	 * 
	 * @param 获取DRG病组,内科组，外科组，操作组
	 * @return
	 */
	public List<Map<String,Object>>  findHospDRGsInfo(Map<String, Object> map);
	/**
	 * DRG病组和病例复杂程度
	 * @param map
	 * @return
	 */
	public List<Map<String,Object>>  findPersonCnt(Map<String, Object> map);
	/**
	 * @param 图表8——不同权重（RW）区间病例数
	 * @return
	 */
	public List<Map<String,Object>>  RWDistribute(Map<String, Object> map,String type);
	
	/**
	 * @param 图表9、10——专科建设DRGs组数与CMI
	 * @return
	 */
	public List<Map<String, Object>> findSpecDRGsCntAndCMI(Map<String, Object> map);
	/**
	 * 表格 9  各临床专业不同权重区间病例分布表
	 * @param map
	 * @return
	 */
	public List<Map<String,Object>>  findSpecCodeWeightIntervalList(Map<String, Object> map);
	/**
	 * 各临床专业
	 * @param map
	 * @return
	 */
	public List<Map<String,Object>>  findSpecDescEveryList(Map<String, Object> map);
	/**
	 * 获取临床专业时间费用消耗指数
	 * @param map
	 * @return
	 */
	public List<Map<String,Object>>  findEfficiencyDepInfoList(Map<String, Object> map);
	/**
	 * 全院低风险组死亡病例病组分布表
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findQualityDepTableByRiskAList(Map<String, Object> map);
	/**
	 * 全院中低风险组死亡病例病组分布表
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findQualityDepTableByRiskBList(Map<String, Object> map);
	/**
	 * 全院出院病例数最多的二十个病种
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findDepOutADRGList(Map<String, Object> map);
	/**
	 * 表格 15  全院重点病种医疗服务能力
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findDepMainADRGList(Map<String, Object> map);
	/**
	 * 表格 16  一二级手术例数最多的前十名医师列表
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findDocOperAList(Map<String, Object> map);
	/**
	 * 表格 17 三四级手术例数最多的前十名医师列表
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findDocOperBList(Map<String, Object> map);
	/**
	 * 获取该重点临床专业的各项信息
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findSpecCodeInformationList(Map<String, Object> map);
	/**
	 * 获取该重点临床专业的出院病例数分布
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findSpecCodeOutCntList(Map<String, Object> map);
	/**
	 * 5.3效率分析
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findSpecCodeEfficiencyList(Map<String, Object> map);
	/**
	 * 5.4死亡病例分布
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findSpecCodeDeadCntList(Map<String, Object> map);
	/**
	 * 5.5病组缺失情况
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findSpecCodeDRGsLackList(Map<String, Object> map);
	/**
	 * 5.6主要病种分析 
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findSpecCodeMainADRGsList(Map<String, Object> map);
	/**
	 * 附表1:全院医疗服务综合能力情况表
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findHospAbilityList(Map<String, Object> map);
	/**
	 * 附表1:各科室医疗服务综合能力情况表
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findAllDepAbilityList(Map<String, Object> map);
	/**
	 * 附表2 全院 DRG组数和覆盖率
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findHospallDRGsList(Map<String, Object> map);
	/**
	 * 附表2 各MDC专业DRG病组覆盖情况及医疗服务综合能力情况
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findAllmdcDRGsList(Map<String, Object> map);
	/**
	 * 附表3  住院病例DRG总权重最高的二十位主治医师
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findDocByWeightList(Map<String, Object> map);
	/**
	 *附表4 CMI值最高的二十位主治医师
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findDocByCMIList(Map<String, Object> map);
	/**
	 *附表5 未入组病例覆盖的所有主要诊断
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findOldNotInGroupDiagList(Map<String, Object> map);
	/**
	 *未入组病例
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findNoInGroupDataList(Map<String, Object> map);
	/**
	 * 表格 25住院天数大于60天病例科室分布表
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findNoInGroupDepOverSixtyList(Map<String, Object> map);
	/**
	 * 表格 26 未入组病例科室分布表
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findNoInGroupDepList(Map<String, Object> map);
	/**
	 * 6.2未入组原因分布
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findNotInGroupReasonList(Map<String, Object> map);
	/**
	 *图表14——重点专业例数最多的十种手术
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findSpecTopTenOper(Map<String, Object> map);
	/**
	 * 5.7 各级手术占比情况
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findSpecCodeOperLevelCntList(Map<String, Object> map);
	/**
	 * 表格 24 主刀三四级手术例数最多的十名术者
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findSpecCodeOperDocCntList(Map<String, Object> map);
	/**
	 * 5.2专业内病例RW分布
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>>  findSpecCodeRWDistributeList(Map<String, Object> map);
	
	
}
